config: handle realloc failure in piofolder parsing
authorDavid Härdeman <[email protected]>
Sun, 23 Nov 2025 14:00:45 +0000 (15:00 +0100)
committerÁlvaro Fernández Rojas <[email protected]>
Thu, 27 Nov 2025 07:24:45 +0000 (08:24 +0100)
Another realloc that goes unchecked.

Signed-off-by: David Härdeman <[email protected]>
Link: https://github.com/openwrt/odhcpd/pull/320
Signed-off-by: Álvaro Fernández Rojas <[email protected]>
src/config.c

index 53362b5bb1185f3c09446f1611fad3b5cb411f43..b7f32ee20aee3f86e8ffe0e1f6c7485c85915dff 100644 (file)
@@ -2123,7 +2123,11 @@ void config_load_ra_pio(struct interface *iface)
                free(iface->pios);
                iface->pios = NULL;
        } else if (iface->pio_cnt != pio_cnt) {
-               iface->pios = realloc(iface->pios, sizeof(struct ra_pio) * iface->pio_cnt);
+               struct ra_pio *tmp;
+
+               tmp = realloc(iface->pios, sizeof(struct ra_pio) * iface->pio_cnt);
+               if (tmp)
+                       iface->pios = tmp;
        }
 }